package comandos;

import model.Conversacion;
import model.Usuario;
import protocol.MensajeComando;
import client.ClienteSession;

public class InvitarAConversar implements ComandoCliente
{
	private Usuario invitado;
	private Usuario invitador;
	private Conversacion conversacion;
	
	@SuppressWarnings("unchecked")
	public synchronized void ejecutar (ClienteSession cliente, boolean invocadoPorServidor)
	{
		if (invocadoPorServidor)
		{
			try
			{
				this.invitador = (Usuario) cliente.getInput().readObject();
				this.conversacion = (Conversacion) cliente.getInput().readObject();
				System.out.println("Has sido invitado a conversar por: " + this.invitador.getNombre() + "Conv id: " + this.conversacion.getId());
			}
			catch (Exception e)
			{
				System.out.println(e.getMessage());
			}
			
		}
		else 
		{
			try 
			{
				
				cliente.getOutput().writeObject(new MensajeComando("invitar_a_conversar",0));
				cliente.getOutput().flush();
				
					
				cliente.getOutput().writeObject(this.invitado);
				cliente.getOutput().flush();
				
				cliente.getOutput().writeObject(this.conversacion);
				cliente.getOutput().flush();
			} 
			catch (Exception e) 
			{
				System.out.println(e.getMessage());
			}
			
		}
			

	}

	public Usuario getInvitado() {
		return invitado;
	}

	public void setInvitador(Usuario invitador) {
		this.invitado = invitador;
	}
	
	

	public Usuario getInvitador() {
		return invitador;
	}

	public void setInvitado(Usuario invitado) {
		this.invitado = invitado;
	}

	public Conversacion getConversacion() {
		return conversacion;
	}

	public void setConversacion(Conversacion conversacion) {
		this.conversacion = conversacion;
	}

	
	
	
	
}
